package 线程状态.线程停止;

/**
 * 线程停止
 * 1.建议线程自己停止--->利用循环次数停止，不建议死循环
 * 2.建议使用标注为停止--->设置标志位（布尔值，for循环次数，if判断）
 * 3.不建使用stop和destroy等过时方法或jdk不建议使用的方法
 */
public class Runnable_tz1 implements Runnable {
    //标志位
    private Boolean flag = true;

    @Override
    public void run() {
        int i = 0;
        while (flag) {
            System.out.println("run.... Thread -->" + i++);
        }
    }

    //修改标志位使线程停止的方法
    private void stoup(Boolean flag) {
        this.flag = flag;
    }

    public static void main(String[] args) {
        Runnable_tz1 runnable_tz1 = new Runnable_tz1();
        Thread thread = new Thread(runnable_tz1,"线程停止");
        thread.start();
        for (int i = 0; i <= 100; i++) {
            if (i==99){
                //调用stoup方法停止线程
                runnable_tz1.stoup(false);
                System.out.println("线程停止");
            }
            System.out.println("main主线程"+i);
        }
    }
}
